vue项目全屏状态下,ant

您所在的位置:网站首页 model 3 浏览器全屏 vue项目全屏状态下,ant

vue项目全屏状态下,ant

2023-08-18 19:45| 来源: 网络整理| 查看: 265

项目场景:

技术:vue 浏览器全屏.a-model弹窗组件

最近遇到一个项目需求就是在一个组件里面 进入全屏状态下,这个组件里面有一个a-model弹窗组件, 不起作用的一个场景,a-model 被覆盖在浏览器全屏状态 下面

问题描述

vue项目全屏状态下,ant-design中的a-model弹窗组件被覆盖

各位大佬遇到这样的情况,第一时间想到的是不是样式层级问题,想到的解决方法是在弹出框样式加z-index:999; 我刚开始发现这个问题也是这么想的,但是加上去没有效果,

首先给你们看一下我的项目代码, 在这里插入图片描述我这里定义的ref="screenRef"是想获取到这个组件的容器 然后想把他展示全屏状态下,

在这里插入图片描述 这个是我出错的时候代码,这个代码完全没有意识到问题的严重性,下方代码是我a-model弹出框组件的代码 在这里插入图片描述 大伙们是不是看到这里也没有发现什么问题,我也一样,哈哈哈

原因分析:

挂载全屏对象出错的问题

我在要准备全屏的组件里面,添加了ref 来获取这个组件的容器,来展示大屏 但是呢a-model弹窗的时候会弹出到body 目录下,和我用来展示的那个容器大屏 同级了,所以导致在大屏状态下,弹窗被覆盖 在这里插入图片描述

解决方案:

改变了全屏的挂载对象

我将原本挂载screenRef容器上的对象,挂载到全局的document.documentElement中, 因为document.documentElement是整个项目中的初始Dom,是根节点, 改变的代码如下: 在这里插入图片描述 这样你就能在组件里面全屏状态下,使用a-model弹窗组件了,但是改变挂载的对象会出现一些问题,就是组件里面高度的问题,会导致整个这个组件全屏状态下,出现向下的滚动条

在这里插入图片描述

原因是组件的宽度和外部全局的宽度不一样,我们要想解决这个方法的话在这个组件在外面的容器的样式上写 overflow: hidden;多余部分隐藏 在这里插入图片描述 左侧滚动条在全局html,和body里面解决使用 overflow-x: hidden;就能解决样式问题, 但是你在这个组件用了document.documentElement 进入全屏状态下的话,其他组件也会相应的进入全屏状态下,你跳转其到其他vue组件你就给他取消全屏状态, 这个弹窗不显示问题就轻松解决了



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3